- To introduce the concept of IRT
- To present the 1-PL/Rasch, 2-PL, and 3-PL models
12 January 2015
Scores that are invariant to our instrument
Models
Link manifest variables with latent variables
Latent characteristics of individuals and items are predictors of observed responses
Not a "how" or "why" theory
Manifest variables differentiate among persons at different locations on the latent scale
Items are characterized by location and ability to discriminate among persons
Items and persons are on the same scale
Parameters estimated in a sample are linearly transformable to estimates of those parameters from another sample
Yields scores that are independent of number of items, item difficulty, and the individuals it is measured on, and are placed on a real-number scale
Response of a person to an item can be modeled with a specific item reponse function
\(p(x = 1 | z) = \frac{e^z}{1 - e^z}\)
The logistic regression model\(p(x = 1 | g) = \frac{e^{\beta_0 + \beta_1g}}{1 - e^{\beta_0 + \beta_1g}}\)
The Rasch model\(p(x_j = 1 | \theta, b_j) = \frac{e^{\theta - b_j}}{1 - e^{\theta - b_j}}\)
So, the Rasch model is just the logistic regression model in disguise
rasch <- function(person, item) {
exp(person - item)/(1 + exp(person - item))
}
rasch(person = 1, item = 1.5)
## [1] 0.3775407
rasch <- function(person, item) {
exp(person - item)/(1 + exp(person - item))
}
rasch(person = 1, item = 1)
## [1] 0.5
\(p(x_j = 1 | a,\theta, b_j) = \frac{e^{a(\theta - b_j)}}{1 - e^{a(\theta - b_j)}}\)
Rperson <- seq(from= -4, to = 4, by = .1)
item1 <- 2; item2 <- 1.2; item3 <- 2.5
LogLiks <- NULL
for(i in 1:length(person)){
p1 <- 1-rasch(person = person[i],item = item1)
p2 <- rasch(person = person[i],item = item2)
p3 <- rasch(person = person[i],item = item3)
LogLiks[i] <- log(p1*p2*p3)
}
plot(LogLiks person,type = "l",xlab = "Ability",
ylab = "Log-Likelihood")
abline(v = person[which.max(LogLiks)],lty=2)
\(p(x_j = 1 | \theta, a_j, b_j) = \frac{e^{a_j(\theta - b_j)}}{1 - e^{a_j(\theta - b_j)}}\)
The 2-PL model\(p(x_j = 1 | \theta, a_j, b_j, c_k) = c_j + (1 - c_j)\frac{e^{a_j(\theta - b_j)}}{1 - e^{a_j(\theta - b_j)}}\)
R\(p(x_j = 1 | \theta, b_j) = \frac{e^{\theta - b_j}}{1 - e^{\theta - b_j}}\)
So there are an infinite number of solutions!
R with irtoysp.2pl <- est(Scored, model="2PL", engine="ltm") cbind(p.2pl$est[1:2,],p.2pl$se[1:2,])
## [,1] [,2] [,3] [,4] [,5] [,6] ## Item 1 0.6326689 -2.0005810 0 0.1359665 0.41104688 0 ## Item 2 1.5469622 -0.2681548 0 0.1928367 0.08792123 0
th.eap <- eap(resp=Scored, ip=Scored2pl$est, qu=normal.qu()) th.eap[1:2,]
## est sem n ## [1,] 0.8083981 0.4996128 18 ## [2,] -1.3387368 0.4051805 18
mirt.